home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / slaed2.z / slaed2
Text File  |  1996-03-14  |  6KB  |  199 lines

  1.  
  2.  
  3.  
  4. SSSSLLLLAAAAEEEEDDDD2222((((3333FFFF))))                                                          SSSSLLLLAAAAEEEEDDDD2222((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SLAED2 - merge the two sets of eigenvalues together into a single sorted
  10.      set
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE SLAED2( K, N, D, Q, LDQ, INDXQ, RHO, CUTPNT, Z, DLAMDA, Q2,
  14.                         LDQ2, INDXC, W, INDXP, INDX, COLTYP, INFO )
  15.  
  16.          INTEGER        CUTPNT, INFO, K, LDQ, LDQ2, N
  17.  
  18.          REAL           RHO
  19.  
  20.          INTEGER        COLTYP( * ), INDX( * ), INDXC( * ), INDXP( * ), INDXQ(
  21.                         * )
  22.  
  23.          REAL           D( * ), DLAMDA( * ), Q( LDQ, * ), Q2( LDQ2, * ), W( *
  24.                         ), Z( * )
  25.  
  26. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  27.      SLAED2 merges the two sets of eigenvalues together into a single sorted
  28.      set.  Then it tries to deflate the size of the problem.  There are two
  29.      ways in which deflation can occur:  when two or more eigenvalues are
  30.      close together or if there is a tiny entry in the Z vector.  For each
  31.      such occurrence the order of the related secular equation problem is
  32.      reduced by one.
  33.  
  34.  
  35. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  36.      K      (output) INTEGER
  37.             The number of non-deflated eigenvalues, and the order of the
  38.             related secular equation. 0 <= K <=N.
  39.  
  40.      N      (input) INTEGER
  41.             The dimension of the symmetric tridiagonal matrix.  N >= 0.
  42.  
  43.      D      (input/output) REAL array, dimension (N)
  44.             On entry, D contains the eigenvalues of the two submatrices to be
  45.             combined.  On exit, D contains the trailing (N-K) updated
  46.             eigenvalues (those which were deflated) sorted into increasing
  47.             order.
  48.  
  49.      Q      (input/output) REAL array, dimension (LDQ, N)
  50.             On entry, Q contains the eigenvectors of two submatrices in the
  51.             two square blocks with corners at (1,1), (CUTPNT,CUTPNT) and
  52.             (CUTPNT+1, CUTPNT+1), (N,N).  On exit, Q contains the trailing
  53.             (N-K) updated eigenvectors (those which were deflated) in its last
  54.             N-K columns.
  55.  
  56.      LDQ    (input) INTEGER
  57.             The leading dimension of the array Q.  LDQ >= max(1,N).
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSLLLLAAAAEEEEDDDD2222((((3333FFFF))))                                                          SSSSLLLLAAAAEEEEDDDD2222((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      INDXQ  (input/output) INTEGER array, dimension (N)
  75.             The permutation which separately sorts the two sub-problems in D
  76.             into ascending order.  Note that elements in the second half of
  77.             this permutation must first have CUTPNT added to their values.
  78.             Destroyed on exit.
  79.  
  80.      RHO    (input/output) REAL
  81.             On entry, the off-diagonal element associated with the rank-1 cut
  82.             which originally split the two submatrices which are now being
  83.             recombined.  On exit, RHO has been modified to the value required
  84.             by SLAED3.
  85.  
  86.             CUTPNT (input) INTEGER The location of the last eigenvalue in the
  87.             leading sub-matrix.  min(1,N) <= CUTPNT <= N.
  88.  
  89.      Z      (input) REAL array, dimension (N)
  90.             On entry, Z contains the updating vector (the last row of the
  91.             first sub-eigenvector matrix and the first row of the second sub-
  92.             eigenvector matrix).  On exit, the contents of Z have been
  93.             destroyed by the updating process.
  94.  
  95.             DLAMDA (output) REAL array, dimension (N) A copy of the first K
  96.             eigenvalues which will be used by SLAED3 to form the secular
  97.             equation.
  98.  
  99.      Q2     (output) REAL array, dimension (LDQ2, N)
  100.             A copy of the first K eigenvectors which will be used by SLAED3 in
  101.             a matrix multiply (SGEMM) to solve for the new eigenvectors.   Q2
  102.             is arranged into three blocks.  The first block contains non-zero
  103.             elements only at and above CUTPNT, the second contains non-zero
  104.             elements only below CUTPNT, and the third is dense.
  105.  
  106.      LDQ2   (input) INTEGER
  107.             The leading dimension of the array Q2.  LDQ2 >= max(1,N).
  108.  
  109.      INDXC  (output) INTEGER array, dimension (N)
  110.             The permutation used to arrange the columns of the deflated Q
  111.             matrix into three groups:  the first group contains non-zero
  112.             elements only at and above CUTPNT, the second contains non-zero
  113.             elements only below CUTPNT, and the third is dense.
  114.  
  115.      W      (output) REAL array, dimension (N)
  116.             The first k values of the final deflation-altered z-vector which
  117.             will be passed to SLAED3.
  118.  
  119.      INDXP  (workspace) INTEGER array, dimension (N)
  120.             The permutation used to place deflated values of D at the end of
  121.             the array.  INDXP(1:K) points to the nondeflated D-values
  122.             and INDXP(K+1:N) points to the deflated eigenvalues.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSLLLLAAAAEEEEDDDD2222((((3333FFFF))))                                                          SSSSLLLLAAAAEEEEDDDD2222((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      INDX   (workspace) INTEGER array, dimension (N)
  141.             The permutation used to sort the contents of D into ascending
  142.             order.
  143.  
  144.             COLTYP (workspace/output) INTEGER array, dimension (N) During
  145.             execution, a label which will indicate which of the following
  146.             types a column in the Q2 matrix is:
  147.             1 : non-zero in the upper half only;
  148.             2 : non-zero in the lower half only;
  149.             3 : dense;
  150.             4 : deflated.  On exit, COLTYP(i) is the number of columns of type
  151.             i, for i=1 to 4 only.
  152.  
  153.      INFO   (output) INTEGER
  154.             = 0:  successful exit.
  155.             < 0:  if INFO = -i, the i-th argument had an illegal value.
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.